// PWA Service Worker 注册
let updateSW: ((reloadPage?: boolean) => Promise<void>) | undefined

// 初始化PWA功能
async function initPWA() {
  // 检查是否在生产环境且支持Service Worker
  const isPWAEnabled = import.meta.env.PROD && 'serviceWorker' in navigator

  if (isPWAEnabled) {
    try {
      // 动态导入PWA注册函数
      const { registerSW } = await import('virtual:pwa-register')

      updateSW = registerSW({
        onNeedRefresh() {
          // 显示更新提示
          if (confirm('发现新版本，是否立即更新？')) {
            updateSW?.(true)
          }
        },
        onOfflineReady() {
          console.log('应用已准备好离线使用')
        },
        onRegistered(r) {
          console.log('Service Worker 注册成功:', r)
        },
        onRegisterError(error) {
          console.log('Service Worker 注册失败:', error)
        }
      })
    } catch (error) {
      console.log('PWA 功能不可用:', error)
    }
  } else {
    console.log('PWA 功能仅在生产环境中可用')
  }
}

// 初始化PWA
initPWA()

export { updateSW }
